#ifndef _NE_UI_DEFINE_H_
#define _NE_UI_DEFINE_H_

#include <graphics/RenderableObject.h>
#include <graphics/DynamicGeometry.h>
#include <graphics/Font.h>
#include <graphics/Atlas.h>
#include <graphics/Sprite.h>

#include <mathematics/Node.h>
#include <mathematics/Math.h>
#include <mathematics/Ray.h>
#include <mathematics/Plane.h>
#include <mathematics/Vector4.h>
#include <mathematics/Color.h>

#include <system/MouseEvent.h>
#include <system/KeyboardEvent.h>

namespace ne
{
    typedef TransformAlignType UIAlignType;

    enum UILayoutType
    {
        UILT_HORIZONTAL,
        UILT_VERTICAL
    };

    static const Color UI_COLOR_ZERO(0.0f, 0.0f, 0.0f, 0.0f);
    static const Color UI_COLOR_ONE(1.0f, 1.0f, 1.0f, 1.0f);
    static const Color UI_COLOR_BLACK(0.0f, 0.0f, 0.0f, 0.5f);
    static const Color UI_COLOR_DARK(0.125f, 0.125f, 0.125f, 0.5f);
    static const Color UI_COLOR_GRAY(0.25f, 0.25f, 0.25f, 0.5f);
    static const Color UI_COLOR_LIGHT(1.0f, 1.0f, 1.0f, 0.5f);
    static const Color UI_COLOR_WHITE(0.5f, 0.5f, 0.5f, 0.5f);
    static const Color UI_COLOR_RED(0.5f, 0.0f, 0.0f, 0.5f);
    static const Color UI_COLOR_GREEN(0.0f, 0.5f, 0.0f, 0.5f);
    static const Color UI_COLOR_BLUE(0.0f, 0.0f, 0.5f, 0.5f);
    static const Color UI_COLOR_YELLOW(0.5f, 0.5f, 0.0f, 0.5f);
    static const Color UI_COLOR_PURPLE(0.5f, 0.0f, 0.5f, 0.5f);
    static const Color UI_COLOR_CYAN(0.0f, 0.5f, 0.5f, 0.5f);
    static const Color UI_COLOR_ORANGE(0.5f, 0.25f, 0.0f, 0.5f);
    static const Color UI_COLOR_SKY(0.0f, 0.25f, 0.5f, 0.5f);

    static const Color UI_COLOR_LOW_LIGHT(0.5f, 0.5f, 0.5f, 1.0f);
    static const Color UI_COLOR_HIGH_LIGHT(2.0f, 2.0f, 2.0f, 1.0f);
}

#endif
